﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>设置进程优先级 - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The 设置进程优先级 function changes the priority level of the first matching process." />
<meta name="ahk:equiv-v1" content="commands/Process.htm#Priority" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>设置进程优先级</h1>

<p>更改第一个匹配进程的优先级.</p>

<pre class="Syntax"><span class="func">设置进程优先级</span> Level <span class="optional">, PIDOrName</span></pre>

<h2 id="Parameters">参数</h2>
<dl>
    <dt>Level</dt>
    <dd>
        <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
        <p>指定下列单词或字母的其中一个:</p>
        <ul>
            <li>Low(或 L) (低)</li>
            <li>BelowNormal(或 B) (低于标准)</li>
            <li>Normal(或 N) (普通)</li>
            <li>AboveNormal(或 A) (高于标准)</li>
            <li>High(或 H) (高)</li>
            <li>Realtime(或 R) (实时)</li>
        </ul>
        <p>请注意, 如果将任何没有设计为实时优先级运行的进程设置为该级别, 则可能会降低系统稳定性.</p>
    </dd>
    <dt>PIDOrName</dt>
    <dd>
        <p>类型: <a href="../Concepts.htm#numbers">整数</a>或<a href="../Concepts.htm#strings">字符串</a></p>
        <p>如果为空或省略, 则使用脚本自己的进程. 否则, 请指定一个数字(PID) 或进程名:</p>
        <p><strong>PID:</strong> 进程 ID, 唯一标识一个特定进程的数字(只有在此进程的生存期这个数字才有意义). 新运行的进程的 PID 可以通过 <a href="Run.htm">运行</a> 函数获取. 同样的, 窗口的 PID 可以通过 <a href="WinGetPID.htm">获取窗口进程编号</a> 获取. <a href="ProcessExist.htm">进程是否存在</a> 也可以用来获取 PID.</p>
        <p><strong>Name:</strong> 进程的名称, 通常和它的可执行文件名相同(不带路径), 例如 notepad.exe 或 winword.exe. 由于一个名称可能与多个正在运行的进程匹配, 因此将仅对第一个进程进行操作. 名称不区分大小写.</p>
    </dd>
</dl>

<h2 id="Return_Value">返回值</h2>
<p>类型: <a href="../Concepts.htm#numbers">整数</a></p>
<p>此函数返回指定进程的<a href="../misc/WinTitle.htm#ahk_pid">进程 ID(PID)</a>. 如果没有找到匹配的进程或无法对其操作, 则返回 0.</p>

<h2 id="Remarks">备注</h2>
<p>进程的当前优先级可以在 Windows 任务管理器中看到.</p>

<h2 id="Related">相关</h2>
<p><a href="Run.htm">运行</a>, <a href="Process.htm">Process 函数</a>, <a href="Win.htm">Win 函数</a></p>

<h2 id="Examples">示例</h2>

<div class="ex" id="ExBasic">
<p><a href="#ExBasic">#1</a>: 启动记事本, 将其优先级设置为 "High" 并显示其当前的 PID:</p>
<pre>运行 "notepad.exe", , , NewPID
设置进程优先级 "High", NewPID
信息框 "The newly launched Notepad's PID is " NewPID</pre>
</div>

<h3 id="ex2">示例 #2</h3>
<p><a href="#ExHotkey">#2</a>: 一个改变活动窗口进程优先级的热键:</p>
<pre>#z:: <em>; Win+Z 热键</em>
{
    MyGui := 界面.新建(, "Set Priority")
    MyGui.Add("Text",, "
    (
        Press Escape to cancel, or double-click a new
        priority level 遍历 the following window:
    )")
    MyGui.Add("Text", "wp", 获取窗口标题("A"))
    LB := MyGui.Add("ListBox", "r5 vLB Choose1", ["Normal","High","Low","BelowNormal","AboveNormal"])
    SetPriority := 检索函数("SetPriority").bind(获取窗口进程编号("A"))
    LB.OnEvent("DoubleClick", SetPriority)
    MyGui.Add("Button", "default", "OK").OnEvent("Click", SetPriority)
    MyGui.OnEvent("Escape", (*) =&gt; MyGui.Destroy())
    MyGui.OnEvent("Close", (*) =&gt; MyGui.Destroy())
    MyGui.显示()
}

SetPriority(PID, this, *)
{
    LB := this.Gui["LB"]
    如果 设置进程优先级(LB.Text, PID)
        信息框 "Success: Its priority was changed to '" LB.Text "'."
    否则
        信息框 "Error: Its priority could not be changed to '" LB.Text "'."
    关闭窗口()
}</pre>
</div>

</body>
</html>